//
//AIO 编码
//
class AIOEncode {
  ///验签
  static List<int> auth({required List<int> date, required List<int> userId}) {
    List<int> cmdList = [];
    cmdList.addAll([0xbb, 0x01, 0x00, 0x02, 0x0f]);
    cmdList.addAll(userId);
    cmdList.addAll(date);
    cmdList.addAll([0x08, 0x0c]);

    return cmdList;
    // return [
    //   0xbb,
    //   0x01,
    //   0x06,
    //   0x00,
    //   0x0f,
    //
    //   0xb4,
    //   0xf2,
    //   0xc0,
    //   0xcf,
    //   0x33,
    //   0x33,
    //
    //   0x14,
    //   0x17,
    //   0x07,
    //   0x0a,
    //   0x01,
    //   0x05,
    //   0x38,
    //
    //   0x01,
    //   0x0c
    // ];
  }
  ///查询一体机与APP的配对状态
  static List<int> appAndAIOMatch() {
    return [
      0xbb,
      0x02,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询一体机与额贴的连接状态
  static List<int> pasterAndAIOConnected() {
    return [
      0xbb,
      0x03,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询充电盒电量
  static List<int> aioPower() {
    return [
      0xbb,
      0x04,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询额贴电量
  static List<int> pasterPower() {
    return [
      0xbb,
      0x05,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询额贴基本信息
  static List<int> pasterInfo() {
    return [
      0xbb,
      0x06,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询额贴工作状态
  static List<int> pasterStatus() {
    return [
      0xbb,
      0x07,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询额贴信号强度
  static List<int> pasterRSSI() {
    return [
      0xbb,
      0x08,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询一体机工作状态
  static List<int> AIOStatus() {
    return [
      0xbb,
      0x09,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询充电盒wifi状态
  static List<int> AIOWifiConnected() {
    return [
      0xbb,
      0x0a,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询充电盒基本信息
  static List<int> AIOInfo() {
    return [
      0xbb,
      0x0b,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询状态机的工作模式
  static List<int> FSMStatus() {
    return [
      0xbb,
      0x0c,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询用户设置的唤醒时间
  static List<int> wakeupTime() {
    return [
      0xbb,
      0x0d,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询充电盒未上报完成的记录
  static List<int> uploadPendingRecord() {
    return [
      0xbb,
      0x0e,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///获取正在记录的信息
  static List<int> recordingInfo() {
    return [
      0xbb,
      0x0f,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///设置 WiFi 信息
  static List<int> setWifiInfo({required List<int> wifi, required List<int> pass}) {
    List<int> cmdList = [
      0xbb,
      0x70,
      0x00,
      0x00,
      0x56,
    ];

    cmdList.add(0x01);//wifi 开启
    cmdList.addAll(wifi);
    cmdList.addAll(pass);
    cmdList.add(0x01);//app标签 目前 0是小柔悠梦 1是华西医疗

    return cmdList;
  }
  ///设置工作模式
  static List<int> setInterveneMode() {
    return [
      0xbb,
      0x71,
      0x00,
      0x00,
      0x06,
      0x00,
      0x08,
      0x09,
      0x20,
      0x01,
      0x00
    ];
  }
  ///设置用户信息
  static List<int> setUserInfo({required List<int> birthday, required List<int> name}) {
    List<int> cmdList = [
      0xbb,
      0x72,
      0x00,
      0x00,
      0x0f,
    ];
    
    cmdList.addAll(name);
    cmdList.add(0x01);//性别
    cmdList.addAll(birthday);

    return cmdList;
  }
  ///设置额贴工作状态
  static List<int> setPasterStatus() {
    List<int> cmdList = [
      0xbb,
      0x73,
      0x00,
      0x00,
      0x05,

    ];

    cmdList.add(0x01);
    cmdList.addAll([0x01, 0xf4]);
    cmdList.addAll([0x00, 0xff]);

    return cmdList;
  }
  ///请求实时数据
  static List<int> realData() {
    return [
      0xbb,
      0x74,
      0x00,
      0x00,
      0x01,
      0x00
    ];
  }
  ///开始记录
  static List<int> startRecord() {
    return [
      0xbb,
      0x75,
      0x00,
      0x00,
      0xe3,

    ];
  }
  ///结束记录
  static List<int> endRecord() {
    return [
      0xbb,
      0x76,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///开始升级
  static List<int> upgrade() {
    return [
      0xbb,
      0x77,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///设置用户token
  static List<int> setUserToken() {
    return [
      0xbb,
      0x78,
      0x00,
      0x00,
      0x00,

    ];
  }
  // ///脑电数据实时上报
  // static List<int> uploadEEGTimer() {
  //   return [
  //     0xbb,
  //     0xa0,
  //     0x00,
  //     0x00,
  //     0x07,
  //
  //   ];
  // }
  // ///通知用户记录开始成功
  // static List<int> onStartRecord() {
  //   return [
  //     0xbb,
  //     0xb0,
  //     0x00,
  //     0x00,
  //     0x01,
  //
  //   ];
  // }
  // ///通知用户记录开始失败
  // static List<int> onStartFailed() {
  //   return [
  //     0xbb,
  //     0xb1,
  //     0x00,
  //     0x00,
  //     0x02,
  //
  //   ];
  // }
  // ///通知用户数据质量检测开始
  // static List<int> checkEEGSignal() {
  //   return [
  //     0xbb,
  //     0xb2,
  //     0x00,
  //     0x00,
  //     0x01,
  //
  //   ];
  // }
  // ///通知用户记录结束
  // static List<int> onEndRecord() {
  //   return [
  //     0xbb,
  //     0xb3,
  //     0x00,
  //     0x00,
  //     0x12,
  //
  //   ];
  // }
  // ///通知用户排查问题
  // static List<int> onError() {
  //   return [
  //     0xbb,
  //     0xb4,
  //     0x00,
  //     0x00,
  //     0x02,
  //
  //   ];
  // }
  ///连接热点，通知一体机开启热点服务，并创建Socket服务
  static List<int> onError() {
    return [
      0xbb,
      0xaa,
      0x00,
      0x00,
      0x00,

    ];
  }
  ///查询是否有数据
  static List<int> AIOHasData() {
    return [
      0xbb,
      0xb0,
      0x00,
      0x00,
      0x01,
      0x02
    ];
  }
  ///请求丢帧数据
  static List<int> droppedFrames() {
    return [
      0xbb,
      0xb2,
      0x00,
      0x00,
      0x04,

    ];
  }
}